package com.ruoyi.miniapp.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 活动对象VO activity
 * 
 * @author duantao
 * @date 2025-09-09
 */
public class MiniActivityVO extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动ID */
    private Long activityId;

    /** 活动类型ID */
    @Excel(name = "活动类型ID")
    private Long activityTypeId;
    /** 赠送的优惠券名称 */
    @Excel(name = "活动类型名称")
    private String activityTypeName;

    /** 赠送的优惠券ID */
    @Excel(name = "赠送的优惠券ID")
    private Long activityCouponId;

    /** 赠送的优惠券名称 */
    @Excel(name = "赠送的优惠券名称")
    private String activityCouponName;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String activityName;

    /** 活动封面图 */
    @Excel(name = "活动封面图")
    private String activityImg;

    /** 活动链接 */
    @Excel(name = "活动链接")
    private String activityUrl;

    /** 活动标题 */
    @Excel(name = "活动标题")
    private String activityTitle;

    /** 活动详情（富文本） */
    @Excel(name = "活动详情", readConverterExp = "富=文本")
    private String activityInfo;

    /** 活动费用 */
    @Excel(name = "活动费用")
    private BigDecimal activityCost;

    /** 活动地址 */
    @Excel(name = "活动地址")
    private String activityAddress;

    /** 活动时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activityTime;

    /** 报名须知 */
    @Excel(name = "报名须知")
    private String activityRemark;

    /** 报名人数限制 */
    @Excel(name = "报名人数限制")
    private Integer activityLimit;

    /** 报名人数限制 */
    @Excel(name = "报名剩余名额")
    private Integer activityLeavings;

    /** 活动状态（0正常 1停用） */
    @Excel(name = "是否热门", readConverterExp = "N=正常,Y=热门")
    private String isPopular;


    /** 活动状态（0正常 1停用） */
    @Excel(name = "活动状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setActivityId(Long activityId)
    {
        this.activityId = activityId;
    }

    public Long getActivityId()
    {
        return activityId;
    }

    public void setActivityTypeId(Long activityTypeId)
    {
        this.activityTypeId = activityTypeId;
    }

    public Long getActivityTypeId()
    {
        return activityTypeId;
    }

    public String getActivityTypeName() {
        return activityTypeName;
    }

    public void setActivityTypeName(String activityTypeName) {
        this.activityTypeName = activityTypeName;
    }

    public void setActivityCouponId(Long activityCouponId)
    {
        this.activityCouponId = activityCouponId;
    }

    public Long getActivityCouponId()
    {
        return activityCouponId;
    }

    public void setActivityCouponName(String activityCouponName)
    {
        this.activityCouponName = activityCouponName;
    }

    public String getActivityCouponName()
    {
        return activityCouponName;
    }

    public void setActivityName(String activityName)
    {
        this.activityName = activityName;
    }

    public String getActivityName()
    {
        return activityName;
    }

    public void setActivityImg(String activityImg)
    {
        this.activityImg = activityImg;
    }

    public String getActivityImg()
    {
        return activityImg;
    }

    public void setActivityUrl(String activityUrl)
    {
        this.activityUrl = activityUrl;
    }

    public String getActivityUrl()
    {
        return activityUrl;
    }

    public void setActivityTitle(String activityTitle)
    {
        this.activityTitle = activityTitle;
    }

    public String getActivityTitle()
    {
        return activityTitle;
    }

    public void setActivityInfo(String activityInfo)
    {
        this.activityInfo = activityInfo;
    }

    public String getActivityInfo()
    {
        return activityInfo;
    }

    public void setActivityCost(BigDecimal activityCost)
    {
        this.activityCost = activityCost;
    }

    public BigDecimal getActivityCost()
    {
        return activityCost;
    }

    public void setActivityAddress(String activityAddress)
    {
        this.activityAddress = activityAddress;
    }

    public String getActivityAddress()
    {
        return activityAddress;
    }

    public void setActivityTime(Date activityTime)
    {
        this.activityTime = activityTime;
    }

    public Date getActivityTime()
    {
        return activityTime;
    }

    public void setActivityRemark(String activityRemark)
    {
        this.activityRemark = activityRemark;
    }

    public String getActivityRemark()
    {
        return activityRemark;
    }

    public Integer getActivityLimit() {
        return activityLimit;
    }

    public void setActivityLimit(Integer activityLimit) {
        this.activityLimit = activityLimit;
    }

    public Integer getActivityLeavings() {
        return activityLeavings;
    }

    public void setActivityLeavings(Integer activityLeavings) {
        this.activityLeavings = activityLeavings;
    }

    public String getIsPopular() {
        return isPopular;
    }

    public void setIsPopular(String isPopular) {
        this.isPopular = isPopular;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("activityId", getActivityId())
            .append("activityTypeId", getActivityTypeId())
            .append("activityCouponId", getActivityCouponId())
            .append("activityCouponName", getActivityCouponName())
            .append("activityName", getActivityName())
            .append("activityImg", getActivityImg())
            .append("activityUrl", getActivityUrl())
            .append("activityTitle", getActivityTitle())
            .append("activityInfo", getActivityInfo())
            .append("activityCost", getActivityCost())
            .append("activityAddress", getActivityAddress())
            .append("activityTime", getActivityTime())
            .append("activityRemark", getActivityRemark())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
